約 1,822,174 件
https://w.atwiki.jp/idjj/pages/18.html
java concurrentパッケージ スレッド協調クラス Exchanger スレッド間で協調してオブジェクトの交換をしたいときに使用 Producer/Consumer間で似非同期リクエスト/リプライ実装に使用できる consumer側スレッドでNull Objectを生成 Exchanger#exchange呼び出し subscribe Producerスレッドはsubscribeに対して、キャッシュからデータ取り出し Exchanger#exchange呼び出し CountDownLatch 複数のスレッド間の同期化を行い、最後のスレッドが到達した時点で各スレッドを開放する 再利用不可能 CyclicBarrier 複数のスレッド間の同期化を行い、最後のスレッドが到達した時点で各スレッドを開放する バリアアクションを登録しておくと、各スレッド解放前にバリアアクションを起こすことができる。 各スレッドの状態同期などに使用できる カウントをリセットして再利用可能
https://w.atwiki.jp/asato/pages/23.html
Java Concurrency メモ
https://w.atwiki.jp/kapper1224/pages/95.html
Linuxでも昔のまうじゃん for Javaが動作します。 本家サイトからJava版のZIPファイルをダウンロードして展開 sudo apt default-jre mkdir mujin cd mujin wget http //www.amy.hi-ho.ne.jp/ishihata/maujong/java/mujnj_0.9.1.7.zip unzip mujnj_0.9.1.7.zip java -jar Maujong.jar で動作します。 ZIPを展開する時はサブフォルダを作成した方が良いかもしれません。 2007年製のアプリですがJavaはずっと動きそうです。
https://w.atwiki.jp/cappu/pages/58.html
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.IOException; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket; import java.nio.ByteBuffer; public class ClientServerSocketSample { private final static int port = 50000; static class SimpleServerSession implements Runnable { private Socket socket; public SimpleServerSession(Socket socket) { this.socket = socket; } @Override public void run() { try { BufferedInputStream input = new BufferedInputStream(socket .getInputStream()); BufferedOutputStream output = new BufferedOutputStream(socket .getOutputStream()); while (true) { // インプットストリームからバイトを取得 byte[] readByte = new byte[1024]; int streamSize = -1; RecievedData data = new RecievedData(); while ((streamSize = input.read(readByte)) != -1) { ByteBuffer re = ByteBuffer.wrap(new byte[streamSize]); re.put(readByte, 0, streamSize); data.putByte(re.array()); if (data.isCompleted()) { break; } } ByteBuffer bytebuf = ByteBuffer.wrap(new byte[data .getSize()]); bytebuf.putInt(data.getDataSize()); bytebuf.put(data.getData().array()); output.write(bytebuf.array()); output.flush(); } } catch (Exception e) { if (socket != null) { try { socket.close(); } catch (IOException e1) { e1.printStackTrace(); } } } } } public static void main(String[] args) { new Thread(new Runnable() { @Override public void run() { try { ServerSocket server = new ServerSocket(port); while (true) { Socket soket = server.accept(); new Thread(new SimpleServerSession(soket)).start(); System.out.println("accept soket " + soket); } } catch (IOException e) { e.printStackTrace(); } System.out.println("end"); } }).start(); Socket socket = new Socket(); try { socket.connect(new InetSocketAddress(port)); BufferedOutputStream out = new BufferedOutputStream(socket .getOutputStream()); BufferedInputStream input = new BufferedInputStream(socket .getInputStream()); for (int i = 0; i 10000; i++) { // 送信 String sendString = "sample 日本語"; byte[] senddata = sendString.getBytes(); ByteBuffer bufData = ByteBuffer.allocate(4 + senddata.length); bufData.putInt(senddata.length); bufData.put(senddata); out.write(bufData.array()); out.flush(); // 受信 // インプットストリームからバイトを取得 byte[] readByte = new byte[1024]; int streamSize = -1; RecievedData data = new RecievedData(); while ((streamSize = input.read(readByte)) != -1) { ByteBuffer re = ByteBuffer.wrap(new byte[streamSize]); re.put(readByte, 0, streamSize); data.putByte(re.array()); if (data.isCompleted()) { break; } } String recieve = new String(data.getData().array()); if (recieve.equals(sendString)) { } else { System.err.println("errror"); } } System.out.println("終了"); } catch (IOException e) { e.printStackTrace(); } } } class RecievedData { private RecievedState state; private RecievedState sizeData; private RecievedState messageData; private boolean completed; public RecievedData() { sizeData = new RecievedState(this, 4); state = sizeData; } public void putByte(byte[] data) { state.putByte(data); } void full(RecievedState recievedState, ByteBuffer fullData, ByteBuffer restData) { if (recievedState == sizeData) { fullData.position(0); messageData = new RecievedState(this, fullData.getInt()); state = messageData; if (restData != null) { putByte(restData.array()); } } else if (recievedState == messageData) { if (restData != null) { throw new RuntimeException("データサイズが不一致です"); } completed = true; } } public ByteBuffer getData() { if (messageData != null) { return messageData.getData(); } return null; } public boolean isCompleted() { return completed; } public int getSize() { if (messageData != null) { return sizeData.getSize() + messageData.getSize(); } return sizeData.getSize(); } public int getDataSize() { if (messageData != null) { return messageData.getSize(); } return sizeData.getSize(); } private class RecievedState { private int size; public int getSize() { return size; } private RecievedData recievedData; private ByteBuffer buf; private boolean full; public RecievedState(RecievedData recievedData, int size) { this.size = size; buf = ByteBuffer.wrap(new byte[size]); this.recievedData = recievedData; } public void putByte(byte[] data) { if (full) { throw new RuntimeException("これ以上書きこむことはできません"); } int rest = size - buf.position(); if (rest == data.length) { buf.put(data, 0, data.length); recievedData.full(this, buf, null); full = true; } else if (rest data.length) { buf.put(data, 0, data.length); } else { buf.put(data, 0, rest); ByteBuffer restBuf = ByteBuffer.wrap(new byte[data.length - rest]); restBuf.put(data, rest, data.length - rest); recievedData.full(this, buf, restBuf); full = true; } } public ByteBuffer getData() { return buf; } } }
https://w.atwiki.jp/yo-kichi/pages/137.html
今回の目標 スレッドを理解させる 役割り分担, 内容 スレッドの説明 スレッドを使ったプログラムの実習 検討中 どれかやる abstract オーバーライド オーバーロード コンストラクタチェーン(コンストラクタからコンストラクタ呼ぶ) コレクション thread interface ←まだやらない 準備 宿題 問題と答え 反省 前回の質問 なぜjavaは多重継承を実装しなかったのか javaのjreとかってオープンソースなの? 継承したクラスってメモリ上でどうなってるの? その他 そろそろJavaオープンソースに参戦する? ニコ生進出?
https://w.atwiki.jp/cappu/pages/2.html
メニュー EclipseEclipse Java 開発 Tips swt JFace draw2d Editor EMF GMF Eclipse Galileo Eclipse Ganymede Android Scala Processing LWJGL Google App Engine Protocol Buffers Game JRuby 字句解析JavaCC antlr ベクトル その他
https://w.atwiki.jp/suffix/pages/101.html
System.outとSystem.errの違い toStringメソッドについて Javaのビット表現 プリミティブ型とラッパークラス 型変換(キャスト) キーワード解説 Java可変長引数 Javaジェネリックス Java版Foreach Javaパッケージ 役割別クラス・メソッド解説(適宜編集項目) 配列 動的配列の使い方 連想配列の使い方 配列要素へのアクセス コレクションについて
https://w.atwiki.jp/ittec/pages/15.html
トラブル事象と対処方法 複数のスレッドからDateFormatを実行した場合に日付が不正な値になる 技術、方式等 Listに特定の値が存在するかを高速に確認する フレームワーク向け リフレクションを利用したロギング アノテーションと動的Profileによる入力チェック(予定)
https://w.atwiki.jp/programmerassistant/pages/27.html
import java.io.*; /* class Saikoro{ //サイコロの目 int me; //サイコロの目を振る void drop(){ this.me = (int)(Math.random() * 6 + 1); */ public class ChoHan { public static void main(String args[]){ BufferedReader myReader = new BufferedReader(new InputStreamReader(System.in)); try{ System.out.println("サイコロゲームを開始します。"); System.out.println("2つのサイコロを投げます。"); //サイコロを2回振り、合計も出します。 int int1 = (int)(Math.random() * 6 + 1); int int2 = (int)(Math.random() * 6 + 1); int int3 = int1 + int2; //入力を促します System.out.println("サイコロの目を当ててください。"); System.out.println("(丁のときは【1】、半のときは【2】を押す。"); //入力する場所 System.out.print("丁?半?> " ); String myS = myReader.readLine(); //サイコロの目を表示 int myA = Integer.parseInt(myS); System.out.println("サイコロ1の目 " + int1); System.out.println("サイコロ2の目 " + int2); //半丁の結果 if (int3 % 2 == 0) { System.out.println("結果は丁でした。"); }else { System.out.println("結果は半でした。"); } //結果に対してのコメント if ((myA ==1 int3 % 2 == 0)||(myA ==2 int3 % 2 == 1)){ System.out.println("大当たり!!"); }else if ((myA == 2 int3 % 2 == 0)||(myA ==1 int3 % 2 == 0)){ System.out.println("残念!はずれました。"); } }catch (IOException e){ System.out.println("エラーが発生しました。!"); }catch (NumberFormatException ne) { System.out.println("入力された数値が正しくないようです。"); } } }
https://w.atwiki.jp/rsslink/pages/40.html
ITmedia エンタープライズ-Java サイトURL: RSS0.91:http //rss.itmedia.co.jp/rss/0.91/ep_java.xml RSS1.00: RSS2.00: 新着記事は見つかりませんでした。